﻿using System.Diagnostics;
using Rhizome.Contract;
using Rhizome.Contract.Diag;

namespace Rhizome.Model
{
	public abstract class RuleBase<TPlant> : RhizomeElement
	{
		protected IEventSink EventSink
		{
			[DebuggerStepThrough]
			get { return GetValue(EventSyncProperty); }
		}

		public TPlant Plant
		{
			[DebuggerStepThrough]
			get { return (TPlant)GetValue(PlantProperty); }
			[DebuggerStepThrough]
			set { SetValue(PlantProperty, value); }
		}
	}

	public abstract class RuleBase : RuleBase<object>
	{
	}
}